// pages/towxml/index.js
const app = getApp();

import DB from '../../utils/db';


const exportHtmlToDocx = async (htmlContent, fileName = 'exported-document.docx') => {
  try {
    const result = await wx.cloud.callFunction({
      name: 'quickstartFunctions',
      data: {
        type: 'word',
        html: htmlContent,
        fileName: fileName
      }
    });
    // console.log(result.result.fileID)
    wx.cloud.downloadFile({
      fileID: result.result.fileID,
      success(res) {
        // console.log(res)
        if (res.statusCode === 200) {
          wx.showModal({
            title: '保存成功',
            content: `部分手机存在打开空白文件,请通过微信文件助手发到电脑查看。`,
            showCancel: false,
            confirmText: '我知道了', // 确认按钮的文字
            success: function (res1) {
              if (res1.confirm) {
                wx.hideLoading();
                console.log('用户点击确定') // 用户点击确定后的操作
                wx.openDocument({
                  filePath: res.tempFilePath,
                  fileType: 'docx',
                  showMenu: true, //关键点
                })
              }
            }
          })
        }
      }
    })


  } catch (error) {
    wx.hideLoading();
    console.error('导出过程中出错:', error);
    wx.showToast({
      title: '导出失败',
      icon: 'none',
      duration: 2000
    });
  }
};

Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  pdf() {

    wx.showLoading({
      title: '导出中',
    })
    this.selectCreateResume()


  },

  // 调用云函数生成文档
  generateDocx() {
    console.log(this.data.from.file)
    wx.cloud.callFunction({
      name: 'quickstartFunctions',
      data: {
        type: 'pdf',
        record: this.data.record,
        file:this.data.from.file
      },
      success: (res) => {
        if (res.result.success) {
          this.setData({ fileID: res.result.fileID });
          this.downloadFile(res.result.fileID); // 下载文件
        } else {
          wx.showToast({
            title: '生成失败: ' + res.result.error,
            icon: 'none',
          });
        }
      },
      fail: (err) => {
        wx.showToast({
          title: '云函数调用失败',
          icon: 'none',
        });
        console.error(err);
      },
    });
  },

  // 下载文件
  downloadFile(fileID) {
    wx.cloud.downloadFile({
      fileID,
      success: (res) => {
        wx.hideLoading();
        const filePath = res.tempFilePath;
        wx.openDocument({
          filePath,
          fileType: 'docx',
          showMenu: true, //关键点
          success: () => {
            wx.cloud.deleteFile({
              fileList: [fileID], // 要删除的文件ID列表
              success: (res) => {
                console.log('云文件删除成功', res);
                // wx.showToast({ title: '文件已删除', icon: 'success' });
              },
            });
          }
        });
      },
      fail: (err) => {
        wx.showToast({ title: '下载失败', icon: 'none' });
        console.error(err);
      },
    });
  },
  selecttemplateId(id) {
    DB.select('templateId', id).then((resp) => {
      // console.log(resp)
      this.setData({
        from: resp.result.data,
      });
      // console.log(resp.result.data)
      wx.hideLoading();
    })
  },
  selectCreateResume() {
    // console.log(this.data.openId)
    DB.select('selectCreateResume', this.data.openId).then((resp) => {
      // console.log(resp)
      this.setData({
        record: resp.result,
      });

      
      const data = this.data.record;
      console.log(data)
      // const isEmpty = Object.values(data).every(arr => arr.length === 0);
      // console.log(data.education.length); // true
      // 方法3
      if (Object.keys(data).includes('personalKeyInformation') && Object.keys(data).includes('evaluation') && data.education.length > 0 && data.project.length > 0 && data.workExperience.length > 0 && data.qualificationCertificate.length > 0) {
        if (data.personalKeyInformation.img.length === 0) {
          this.setData({
            'record.personalKeyInformation.img': `cloud://cloudbase-7g2qsnbke2a72ab7.636c-cloudbase-7g2qsnbke2a72ab7-1354295505/默认头像.png`,
          });
        } 
        wx.cloud.getTempFileURL({
          fileList: [{
            fileID: resp.result.personalKeyInformation.img,
            maxAge: 60 * 60, // one hour
          }]
        }).then(res => {
          this.setData({
            'record.personalKeyInformation.img': res.fileList[0].tempFileURL,
          });
          
          this.generateDocx(this.data.record)
        })
      } else {
        wx.hideLoading();
        wx.showModal({
          title: '提示', // 弹窗标题
          content: '简历信息不够完善', // 弹窗内容
          confirmText: '前往完善',
          success(res) {
            if (res.confirm) {
              wx.navigateTo({
                url: '/pages/createResume/index',
              })
            } else if (res.cancel) {

            }
          }
        })
      }

    }).catch((e) => {
      console.log(e);
      this.setData({
        showUploadTip: true
      });
      wx.hideLoading();
    });

  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      'openId': wx.getStorageSync("openId")
    })
    wx.showLoading({
      title: '数据加载中...', // 这里设置提示词
      mask: true // 显示透明蒙层
    });
    // console.log(options.id)
    this.selecttemplateId(options.id)

    // this.selectCreateResume()


  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  // onShareAppMessage() {

  // }
})